Crear login facebook con PHP
Crear login facebook con PHP. La globalización ya está presente hoy en día y hablar en registros de usuarios es recomendable darle todas las ventajas al visitante de nuestra web, darle muchas alternativas para que tengan una buena experiencia al navegar por nuestra página web.
Para hacernos la vida más fácil Facebook creó las APIs que son cada vez más utilizadas en diversas modalidades que abarcan desde login, comentarios, botones entre otras. Es por tal motivo que en este pequeño artículo aprenderemos a integrar un login de usuarios con Facebook en PHP utilizando el SDK oficial del proveedor.

Crear login facebook con PHP
Ahora, antes de comenzar a programar en PHP es necesario tener creada una aplicación en Facebook, esto lo podemos hacer desde el sitio.
https://developers.facebook.com.
Una vez que tenemos la aplicación web creada se proporcionará un APP ID, API Versión y un App Secret que utilizaremos luego para configurar nuestra aplicación.
La pregunta:
¿Cómo hacer un login con Facebook en PHP y MySQL?
Primero debemos descargar el SDK de Facebook para PHP desde la página que nos brindara los códigos.
https://github.com/facebook/facebook-php-sdk-v4/archive/5.0.0.zip
Primeramente descargar el script y descomprimirlo para ubicarlo en una carpeta en nuestro servidor web. Ahora si podemos empezar a programar nuestro login con Facebook de manera eficiente porque contamos con todas las herramientas para lograrlo.
Necesitamos de dos archivos con nombres login.php y fb-callback.php con sus respectivos script para que funcionen. Sin embargo debemos reemplazar algunos requisitos que pide dicha aplicación como son (APP ID, API Versión y App Secret). Además de declarar las rutas correctas de nuestras carpetas en donde hemos colocado nuestros ficheros.
Paso #01 Creamos un archivo login.php e incluimos el siguiente código:
<?php /* Muestra la sesión*/ session_start(); /* Debemos modificar segun el directorio de instalación*/ require_once __DIR__ . '/facebook/src/Facebook/autoload.php'; $fb = new Facebook\Facebook([ 'app_id' => 'Su App ID', 'app_secret' => 'Su App Secret', 'default_graph_version' => 'v2.4', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // Generar permisos opcionales $loginUrl = $helper->getLoginUrl('https://localhost/PHP/ejemplos/facebook/fb-callback.php', $permissions); /* Aquí el enlace a la página de login Facebook*/ echo '<a href="'. htmlspecialchars($loginUrl) . '">Iniciar sesión con Facebook!</a>'; ?>
Paso #02 Creamos un fichero con el nombre fb-callback.php:
A continuación mostramos el contenido de dicho fichero a implementar en nuestro login Facebook.
<?php //Cargar la sesión session_start(); // Cambiar de acuerdo donde hemos instalado el script require_once __DIR__ . '/facebook/src/Facebook/autoload.php'; $fb = new Facebook\Facebook([ 'app_id' => 'Su App ID', 'app_secret' => 'Su App Secret', 'default_graph_version' => 'v2.4', ]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // Cuando Graph devuelve un error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // Cuando la validación falla echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (! isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Login directo echo '<h3>Acceso Token</h3>'; var_dump($accessToken->getValue()); // Controlador de cliente de OAuth 2.0, para gestionar los accesos $oAuth2Client = $fb->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); echo '<h3>Metadata</h3>'; var_dump($tokenMetadata); $tokenMetadata->validateExpiration(); if (! $accessToken->isLongLived()) { // Cambiando uno de corta duración a una de larga duración try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>"; exit; } echo '<h3>Long-lived</h3>'; var_dump($accessToken->getValue()); } $_SESSION['fb_access_token'] = (string) $accessToken; ?>
Conclusión
Una vez que tenemos todo implementado es la hora de probar este login con Facebook, para probar el funcionamiento correcto del script debemos ingresar con nuestro navegador preferido (Mozilla, Opera, etc.) a la página de login.php.
Nos mostrara un botón HTML y ahí debemos darle clic para iniciar sesión con Facebook.
Bueno solo agradecerles por visitarme y ante cualquier duda dejen un comentario, estaré gustoso de responderles.